package database

import (
	"database/sql"

	"gorm.io/gorm"
	gormlogger "gorm.io/gorm/logger"
	"gorm.io/gorm/schema"

	"hyper/supports/configs"
)

// DB 对象
var DB *gorm.DB
var SQLDB *sql.DB

// 连接数据库
func Connect(dbConfig gorm.Dialector, _logger gormlogger.Interface) {

	var err error

	DB, err = gorm.Open(dbConfig, &gorm.Config{
		NamingStrategy: schema.NamingStrategy{
			TablePrefix: configs.Get("database.mysql.prefix", ""),
		},
		Logger:      _logger,
		PrepareStmt: true, // 全局模式，所有 DB 操作都会创建并缓存预编译语句
	})
	// 处理错误
	if err != nil {
		panic(err.Error())
	}

	// 获取底层的 sqlDB
	SQLDB, err = DB.DB()
	if err != nil {
		panic(err.Error())
	}
}
